#pragma once
#include "../stdafx.h"
#include "../Runtime/basic_type.h"
#define  RawStringCompare(x,y) (wcscmp(x,y)==0)
using namespace XScript::Runtime::BaseTypes;

namespace XScript::Memory::Strings
{
	class RawStringManager
	{
		forward_list<Character*> raw_strings;
	public:	
		RawStringManager();
		RawStringManager(const RawStringManager&) = delete;	
		RawStringManager&operator=(RawStringManager&&) = delete;	
		RawStringManager&operator=(const RawStringManager&) = delete;
		~RawStringManager();	
		RawString CreateFromMultiByte(const char*cstr);
		void Dispose();
		RawString FindEqual(RawString str);
		RawString Chain(RawString s1, RawString s2);
	private: 
		Character* NewString(size_t size);
	};
}